#ifndef TEST_REDIS_GET_H
#define TEST_REDIS_GET_H

#include <stddef.h>

// Redis连接上下文结构体
typedef struct {
    int sockfd;
} redisContext;

// 连接到Redis服务器
redisContext* redis_connect(const char* ip, int port);

// 断开与Redis服务器的连接
void redis_disconnect(redisContext* c);

// SET操作
int redis_set(redisContext* c, const char* key, const char* value);

// GET操作
char* redis_get(redisContext* c, const char* key);

// HSET操作
int redis_hset(redisContext* c, const char* hash, const char* field, const char* value);

// HGET操作
char* redis_hget(redisContext* c, const char* hash, const char* field);

// RPUSH操作
int redis_rpush(redisContext* c, const char* list, const char* value);

// LPOP操作
char* redis_lpop(redisContext* c, const char* list);

// LRANGE操作
char** redis_lrange(redisContext* c, const char* list, int start, int end, int* count);

// LTRIM操作
int redis_ltrim(redisContext* c, const char* list, int start, int end);

// EXPIRE操作
int redis_expire(redisContext* c, const char* key, int seconds);

// TTL操作
int redis_ttl(redisContext* c, const char* key);

// 释放LRANGE返回的数组
void free_redis_array(char** arr, int count);

#endif // TEST_REDIS_GET_H